package com.sq.goodline.dao.po;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Data;

@Data
@TableName("call_detail")
public class CallDetail {

	@TableId(value = "flowno", type = IdType.INPUT)
	private String flowno;// 话单唯一标识，手动输入主键值
	private Integer pushResult;//数据推送结果：0待推送、1成功，2失败
	private String cid;//前端客户方话单id，当主叫送到vos
	private String userdata;//前端自定义数据,未启用
	private String traceid;
	private String callere164;// 计费的主叫号码
	private String calleraccesse164;// VosPower 收到的原始主叫
	private String calleee164;// 计费的被叫号码
	private String calleeaccesse164;//VosPower 收到的原始被叫
	private String callerip; //主叫 IP
	private String callercodec; //主叫语音编码
	private String callergatewayid; //对接网关名称
	private String callerproductid; //主叫设备名称
	private String callertogatewaye164; //呼出主叫号码
	/*主叫模式:
	 * -1: 未知
		0: 平台话机
		1: 对接网关/落地网关
		2: 电话卡*/
	private Integer callertype; 
	private String calleeip; //被叫 IP
	private String calleecodec; //被叫语音编码
	private String calleegatewayid; //落地网关名称
	private String calleeproductid; //被叫设备名称
	private String calleetogatewaye164; //呼出被叫号码
	private Integer calleetype; //被叫模式
	/**
	 *  0：使用话机账户计费
		1：使用对接网关账户计费
		2：使用绑定号码账户计费
		3：使用电话卡账户计费
	 */
	private Integer billingmode; 
	
	/**
	 * 呼叫等级
		1：网内通话
		2：本地市话
		4：国内长途
		5：国际长途
	 */
	private Integer calllevel; 
	private Integer agentfeetime; //代理商计费时长（秒）
	private long starttime; //起始时间（UTC 1970-01-01至今的毫秒数 
	private long stoptime; //终止时间
	private Integer callerpdd; //主叫接通延迟(毫秒)
	private Integer calleepdd; //被叫接通延迟(毫秒）,小于 0 表示未接通
	private Integer holdtime; //通话的时长（秒）
	private String callerareacode; //根据普通账户的计费前缀判断的被叫地	区
	private Integer feetime; //通话计费时长（秒）
	private BigDecimal fee; //账户扣费金额
	private BigDecimal tax; //呼叫税金
	private BigDecimal suitefee; //套餐费用
	private Integer suitefeetime; //套餐赠送时长（秒）
	private BigDecimal incomefee; //下级账户通话费用（当有代理关系时）
	private BigDecimal incometax; //下级账户税金(当有代理关系时)
	private String customeraccount; //计费账户
	private String customername; //计费账户名称
	private String calleeareacode; //根据结算账户的计费前缀判断的被叫地	区
	private BigDecimal agentfee; //代理商或结算账户扣费金额
	private BigDecimal agenttax; //结算账户或代理账户税金
	private BigDecimal agentsuitefee; //结算账户或代理商套餐费用
	private Integer agentsuitefeetime; //结算账户或代理商赠送时长（秒）
	private String agentaccount; //结算账户或代理商账户
	private String agentname; //结算账户名称或代理商账户名称
	private String softswitchname; //SIP 服务名称
	private String softswitchcallid; //SIP 服务序列号
	private String callercallid; //主叫 call-id(Sip 头部名称是 Call-ID)
	private String calleecallid; //被叫 call-id
	private Integer rtpforward; //0: rtp 不经过 VowPower,	1: rtp 经过 VosPower
	/**
	 * 挂断方
		0: 主叫挂断
		1: 被叫挂断
		2: 服务器挂断
	 */
	private Integer enddirection; 
	private Integer endreason; //终止原因(参考 2.3.2)
	/**
	 * 计费类型
		0: 主叫计费
		1: 被叫计费
		2: 其它计费(使用接口创建)
	 */
	private Integer billingtype; 
	private Integer cdrlevel; //当存在代理关系时记录 CDR 层级，从最下层 0 起始，逐层递增
	private Integer agentcdr_id; //记录对应上级代理商话单的 id	-1: 无上级代理商，即被叫为话机账户或结算账户
	private String transactionid;//HTTP 外部黑白名单接口中返回的标识

	/**
     * 创建时间
     */
    private Date createTime;
}